/***********************************************************************************
 * 文件名： mcu_timer.h
 * 作者： 黄均铭
 * 版本： 1
 * 说明：
 * 		定时器驱动。
 * 修改记录：
 * 	2024年1月11日: 初版。 黄均铭。
 ***********************************************************************************/
#ifndef _MCU_TIMER_H_
#define _MCU_TIMER_H_

#include "..\ARM\typedef.h"
#include "mcu.h"

// 定时器初始化 TMR0 TMR1 TMR2 TMR3
void Tim_Init(TMR_T* timer);

// 定时器周期值设置 TMR0 TMR1 TMR2 TMR3
void Tim_SetCycle(TMR_T* timer, u32 cycle);

// 定时器当前计数值获取 TMR0 TMR1 TMR2 TMR3
u32 Tim_GetCycle(TMR_T* timer);

// 清除中断标记 TMR0 TMR1 TMR2 TMR3
#define Tim_ClrIrqFlag(timer) timer->ICLR = 1

// 获取中断标记（未使能也会有中断标记，用于查询）
#define Tim_GetIrqFlag(timer) timer->RIS

#define Tim_EnableInt(timer) timer->CON |= ~TMR_CON_TMRIE_Msk

#define Tim_DisableInt(timer) timer->CON &= ~TMR_CON_TMRIE_Msk

#define Tim_Run(timer) timer->CON |= TMR_CON_TMREN_Msk

#define Tim_Stop(timer) timer->CON &= ~TMR_CON_TMREN_Msk

#endif
